Compass sensor unit and portable electronic device

ABSTRACT

In a compass sensor unit, an azimuth data computing method is carried out by the steps of: inputting a signal from a geomagnetic sensor to measure magnetic field; determining whether to store measurement data of the magnetic field based on a distance from the last stored measurement data; calculating an offset value based on the stored data; making a comparison for each component of a plurality of measurement data used for calculating the offset value, and judging the offset value to be valid when a difference between the maximum and minimum values of each component is a given value or more; updating the already stored offset value to the offset value judged to be valid; and correcting newly provided measurement data by the updated offset value to compute azimuth data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No.11/149,732, which was filed on Jun. 10, 2005; the entirety of which isincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a calibration technique (offsetcorrection technique) of azimuth measurement data in finding an azimuthdirection using a geomagnetic sensor. In particular, it relates to anazimuth data computing method, a compass sensor unit, and a portableelectronic device, which can perform proper calibration even whenmeasurement data obtained from a three-axis geomagnetic sensor areconfined in a peculiar plane, whereby a correct azimuth direction isfound.

2. Background Art

There is known a conventional portable terminal, such as a cellularphone set, which is provided with a magnetic sensor for detectinggeomagnetism to find a direction based on the geomagnetism detected bythe magnetic sensor. The determined azimuth direction is used, forexample, to display a map in proper orientation. A new portable terminalhas recently appeared on the market, which is provided with a GPS(Global Positioning System) receiver for detecting a position to displaya map around its current position in such a manner to orient the map inaccordance with the heading of the portable terminal relative to theazimuth direction.

However, since there are extraneous magnetic fields leaked from aloudspeaker, a microphone, a magnetized metallic package for electronicparts, etc. mounted in the portable terminal, a magnetic sensor mountedin the portable terminal detects a mixture of the geomagnetism and othermagnetic fields generated from the electronic parts and the like insidethe portable terminal. The extraneous magnetic field may cause varyingoffset in measurement of the azimuth direction. Therefore, calibrationis necessary to correct magnetic errors (that is offset) due to themagnetic fields generated from the electronic parts and the like insidethe portable terminal.

In the case of a portable terminal with a two-axis geomagnetic sensormounted in it, calibration is performed in such a manner that a userrotates the portable terminal, for example, 180 degrees to collectmeasurement data from the magnetic sensor during the rotation of theportable terminal so as to estimate offset based on the measurementdata.

A technique for calibrating the magnetic sensor mounted in such aportable terminal is disclosed, for example, in Japanese patentlaid-open No. 2004-12416. In this technique, the portable terminal isrotated at predetermined angles to estimate offset based on datameasured at each angle by the magnetic sensor, thereby performingcalibration irrespective of the rotating speed.

However, even in the method disclosed in Japanese patent laid-open No.2004-12416, the user has to perform calibration by consciously rotatingthe portable device with the magnetic sensor mounted in it. Although itis less complicated than other conventional methods, since it requiresthe user to follow the calibration procedure, it remains burdensome forthe user to follow the procedure. In particular, in the case of athree-axis geomagnetic sensor, since the calibration requires three-axisdata, the user is required to follow a more troublesome procedure.

DISCLOSURE OF THE INVENTION

In one aspect of the present invention, there is proposed an azimuthdata computing method comprising the steps of: inputting a signal from ageomagnetic sensor to measure a magnetic field which may be a mixture ofa geomagnetic field and other magnetic field causing an offset, therebyproviding measurement data of the magnetic field, which is representedby a set of coordinate components corresponding to a set of differentaxes of a given coordinates space; calculating an offset value of theoffset based on a plurality of the measurement data which are measuredsuccessively from the signal inputted from the geomagnetic sensor;comparing the plurality of the measurement data used for calculating theoffset value with one anther in terms of the coordinate components ofeach axis to obtain a difference between a maximum value and a minimumvalue of the coordinate components for each axis; judging the calculatedoffset value to be valid when the difference obtained for each axis isgreater than a predetermined threshold difference; updating a previousoffset value based on the offset value currently judged to be valid; andcorrecting the measurement data which is provided after the previousoffset value has been updated, according to the updated offset value andcomputing azimuth data according to the corrected measurement data.

In another aspect of the present invention, there is proposed an azimuthdata computing method comprising the steps of: inputting a signal from ageomagnetic sensor to measure a magnetic field which may be a mixture ofa geomagnetic field and other magnetic field causing an offset, therebyproviding measurement data of the magnetic field, which is representedby a set of coordinate components corresponding to a set of differentaxes of a given coordinates space; determining whether overflow orunderflow occurs to the measurement data for correcting the measurementdata to fall within a predetermined range when it is determined that theoverflow or underflow occurs to the measurement data; determiningwhether to store current measurement data based on a distance betweenthe current measurement data and previous measurement data storedpreviously, the distance being defined between corresponding positionsof the current measurement data and the previous measurement data in thegiven coordinates space; calculating an offset value of the offset basedon a plurality of the stored measurement data; comparing the pluralityof the measurement data used for the calculating of the offset valuewith one anther in terms of the coordinate components of each axis toobtain a difference between a maximum value and a minimum value of thecoordinate components for each axis; judging the calculated offset valueto be valid when the difference obtained for each axis is greater than apredetermined threshold difference; updating a previous offset valuebased on the offset value currently judged to be valid; and correctingthe measurement data which is provided after the previous offset valuehas been updated, according to the updated offset value and computingazimuth data according to the corrected measurement data.

Note that the distance between a pair of measurement data (Hx1, Hy1,Hz1) and (Hx2, Hy2, Hz2) is defined by:√{square root over ((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}{square root over((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}{square root over((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}.

In still another aspect of the present invention, there is proposed anazimuth data computing method comprising the steps of: inputting asignal from a geomagnetic sensor to measure a magnetic field which maybe a mixture of a geomagnetic field and other magnetic field causing anoffset, thereby providing measurement data of the magnetic field, whichis represented by a set of coordinate components corresponding to a setof different axes of a given coordinates space; determining whether tostore current measurement data based on a distance between the currentmeasurement data and previous measurement data stored previously, thedistance being defined between corresponding positions of the currentmeasurement data and the previous measurement data in the givencoordinates space; calculating an offset value of the offset based on aplurality of the stored measurement data; comparing the plurality of themeasurement data used for the calculating of the offset value with oneanther in terms of the coordinate components of each axis to obtain adifference between a maximum value and a minimum value of the coordinatecomponents for each axis; judging the calculated offset value to bevalid when the difference obtained for each axis is greater than apredetermined threshold difference; when the valid offset value isgreater than a predetermined reference value, returning to the step ofdetermining whether to store the measurement data while removing thevalid offset value from each measurement data successively measured fromthe inputted signal; when the valid offset value is smaller than thepredetermined reference value, updating a previous offset valueaccording to the valid offset value currently judged to be valid; andcorrecting the measurement data which is provided after the previousoffset value has been updated, according to the updated offset value andcomputing azimuth data according to the corrected measurement data.

In yet another aspect of the present invention, there is proposed acompass sensor unit comprising: a magnetic field measuring section thatinputs a signal from the geomagnetic sensor to measure a magnetic fieldwhich may be a mixture of a geomagnetic field and other magnetic fieldcausing an offset, thereby providing measurement data of the magneticfield, which is represented by a set of coordinate componentscorresponding to a set of different axes of a given coordinates space; ameasurement data storing section that stores the measurement data whichare measured successively from the signal inputted from the geomagneticsensor; an offset calculating section that calculates an offset value ofthe offset based on a plurality of the measurement data stored in themeasurement data storing section; an offset validity judging sectionthat compares the plurality of the measurement data with one anther interms of the coordinate components of each axis to obtain a differencebetween a maximum value and a minimum value of the coordinate componentsfor each axis, and that judges the calculated offset value to be validwhen the difference obtained for each axis is greater than apredetermined threshold difference; an offset storing section thatstores a previous offset value of the offset; an offset setting sectionthat adds the valid offset value to the previous offset value stored inthe offset storing section to thereby update the offset value; acomputing section that removes the offset value updated by the offsetsetting section from the measurement data which is provided after theprevious offset value has been updated, to compute corrected measurementdata; and an azimuth measuring section that computes azimuth dataaccording to the corrected measurement data.

The compass sensor unit may further comprise an integrator section thatintegrates the measurement data of the magnetic data outputted from thecomputing section, and that provides the integrated measurement data tothe azimuth measuring section.

Alternatively, the compass sensor unit may further comprise a detectionsection that monitors the measurement data of the magnetic field todetect occurrence of overflow or underflow, such that when theoccurrence of overflow or underflow is detected, an appropriatecorrection value is inputted to the computing section to compensate forthe overflow or underflow of the measurement data.

Alternatively, the compass sensor unit may further comprise an offsetmagnitude determining section that compares the offset value judged tobe valid by the offset validity judging section with a given referencevalue, the offset magnitude determining section being operative when thevalid offset value is greater than the given reference value foroutputting the valid offset value to the computing section, or beingoperative when the valid offset value is smaller than the givenreference value for outputting the valid offset value to the azimuthmeasuring section.

Alternatively, the compass sensor unit may further comprise either of: atemperature sensor that detects temperature, and a temperaturecorrection value calculating section that calculates a temperaturecorrection value from the detected temperature and outputs thecalculated temperature correction value to the azimuth measuring sectionfor correcting the azimuth data for the temperature; or a tilt sensorthat detects a tilt of the geomagnetic sensor, and a tilt correctionvalue calculating section that calculates a tilt correction value fromthe detected tilt and outputs the calculated tilt correction value tothe azimuth measuring section for correcting the azimuth data for thedetected tilt.

Preferably, the compass sensor unit may further comprise: a temperaturesensor that detects temperature; a temperature correction valuecalculating section that calculates a temperature correction value fromthe detected temperature and outputs the calculated temperaturecorrection value to the azimuth measuring section for correcting theazimuth data for the detected temperature; a tilt sensor that detects atilt of the geomagnetic sensor; a tilt correction value calculatingsection that calculates a tilt correction value from the detected tiltand outputs the calculated tilt correction value to the azimuthmeasuring section for correcting the azimuth data for the detected tilt;and a correction data determining section that compares current one andprevious one of the temperature correction values calculatedsuccessively by the temperature correction value calculating section todetermine whether to output the current temperature correction value tothe azimuth measuring section, and that compares current one andprevious one of the tilt correction values calculated successively bythe tilt correction value calculating section to determine whether tooutput the current tilt correction value to the azimuth measuringsection.

In yet another aspect of the present invention, there is proposed aportable electronic device provided with the compass sensor unit asdescribed above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the structure of a portable electronicdevice (portable terminal) according to the present invention.

FIG. 2 is a block diagram showing the structure of a compass sensor unitaccording to a first embodiment.

FIG. 3 is a flowchart related to output of azimuth data according to thefirst embodiment.

FIG. 4 is a block diagram showing the structure of a modificationexample of the compass sensor unit according to the first embodiment.

FIG. 5 is a block diagram showing the structure of a compass sensor unitaccording to a second embodiment.

FIG. 6 is a flowchart related to output of azimuth data according to thesecond embodiment.

FIG. 7 is a block diagram showing the structure of a modificationexample of the compass sensor unit according to the second embodiment.

FIG. 8 is a block diagram showing the structure of a compass sensor unitaccording to a third embodiment.

FIG. 9 is a flowchart related to output of azimuth data according to thethird embodiment.

FIG. 10 is a block diagram showing the structure of a compass sensorchip according to a fourth embodiment.

FIG. 11 is a block diagram showing the structure of a compass sensorunit according to the fourth embodiment.

FIG. 12 is a block diagram showing the structure of a modificationexample of the compass sensor unit according to the fourth embodiment.

FIG. 13A is an illustration showing the coordinate system allocated to aportable terminal.

FIG. 13B is an illustration showing a ground coordinate system.

BEST MODES FOR CARRYING OUT THE INVENTION

Embodiments of the present invention will now be described withreference to the accompanying drawings.

FIG. 1 is a block diagram showing the electrical structure of a portableelectronic device according to a preferred form of the present inventionby taking an example a CDMA (Code Division Multiple Access) portablecommunication terminal (hereinafter called the portable terminal).

Portions common to one another in the drawings are given the samereference numerals.

As shown in FIG. 1, a portable terminal 1 of this form includes antennas101 and 106, an RF part 102, a modem part 103, a CDMA part 104, a speechprocessing part 105, a GPS receiver part 107, a main control part 108, aROM 109, a RAM 110, annunciator means 111, a timer part 112, a mainoperating part 113, an SW 114, an electronic image pickup part 116, adisplay part 117, a touch panel 118, an auxiliary operating part 115,and a compass sensor unit 200.

As shown in FIG. 1, the antenna 101 exchanges radio waves with a radiobase station, not shown. The RF part 102 performs processing related tosending and receiving signals. The RF part 102 is equipped with a localoscillator and the like. Upon reception, the RF part 102 mixes a localoscillator signal of a given frequency with a received signal from theantenna 101 to convert the received signal to a received IF signal of anintermediate frequency (IF), and output it to the modem part 103. Upontransmission, the RF part 102 mixes a local oscillator signal of a givenfrequency with a transmit IF signal of an intermediate frequency toconvert the transmit IF signal to a transmit signal of a transmitfrequency, and output it to the antenna 101.

The modem part 103 demodulates the received signal and modulates thetransmit signal. The modem part 103 is equipped with a local oscillatorand the like to convert the received IF signal from the RF part 102 intoa baseband signal of a given frequency, convert the baseband signal to adigital signal and output the digital signal to the CDMA part 104. Onthe other hand, the modem part 103 converts a digital baseband signalfrom the CDMA part 104 into a transmit analog signal, converts it to atransmit IF signal of a given frequency, and outputs it to the RF part102.

The CDMA part 104 encodes the transmit signal and decode the receivedsignal. The CDMA part 104 decodes the baseband signal output from themodem part 103. On the other hand, the CDMA part 104 encodes thetransmit signal and outputs the coded baseband signal to the modem part103.

The speech processing part 105 performs speech processing during a call.The speech processing part 105 converts an analog speech signal outputfrom the microphone (MIC) during the call, and outputs it to the CDMApart 104 as a transmit signal. On the other hand, the speech processingpart 105 generates an analog driving signal for driving a speaker (SP)based on a signal representing speech data decoded during the call bythe CDMA part 104, and outputs it to the speaker (SP). The microphone(MIC) generates a speech signal based on voice input by the user, andoutputs it to the speech processing part 105. The speaker (SP) soundsthe voice of a calling partner based on a signal output from the speechprocessing part 105.

The GPS antenna 106 receives radio waves transmitted from GPSsatellites, not shown, and outputs received signals based on the radiowaves to the GPS receiver part 107. The GPS receiver part 107demodulates the received signals, and acquires information based on thereceived information, such as accurate time information and propagationtime from each of the GPS satellites. The GPS receiver part 107calculates distances to three or more GPS satellites based on theacquired information to calculate a position in three-dimensional space(latitude, longitude, altitude, etc) based on the triangulationprinciple.

The main control part 108 includes a CPU (Central Processing Unit) andthe like to control each internal part of the portable terminal 1. Themain control part 108 inputs and outputs control signals or data througha bus to and from the RF part 102, the modem part 103, the CDMA part104, the speech processing part 105, the GPS receiver part 107, thecompass sensor unit 200 to be described below, the ROM 109, and the RAM110. The ROM 109 stores various programs to be executed by the maincontrol part 108, and initial characteristic values and the like of atemperature sensor and a tilt sensor measured at the time of shippinginspection. The RAM 110 temporarily stores data and the like to beprocessed by the main control part 108. The ROM 109 is a recordingmedium for use in the portable electronic apparatus 1 having a processorin the form of CPU and a geomagnetic sensor. The ROM 109 containsprogram instructions executable by the CPU for causing the electronicapparatus 1 to perform the inventive methods of computing azimuth data,details of which will be described later.

The annunciator means 111 includes, for example, a speaker, a vibrator,and/or a light-emitting diode to inform the user of the arrival of acall or e-mail using sound, vibration, and/or light. The timer part 112has a timer function for creating time information indicating year,month, day, day of the week, time, etc. The main operating part 113includes input keys for entering characters, a conversion key forconversion to Chinese characters, numerals, etc., cursor keys, a poweron/off key, a talk key, a redial key, etc. operated by the user; itoutputs signals indicating the operation results to the main controlpart 108. The opening/closing switch (SW) 114 is a switch for detectingthe beginning of opening or end of closing of a folding portableterminal.

The compass sensor unit 200 includes magnetic sensors (1) to (3) fordetecting x-axis, y-axis, and z-axis magnetic fields orthogonal to oneanother, a temperature sensor for detecting temperature, aphysical-value sensor for detecting the inclination, or tilt angle, ofthe portable terminal 1, and a processing block for processing thedetection results from the respective sensors. The details will bedescribed later using FIG. 2.

The electronic image pickup part 116 includes an optical lens and animage pickup device such as a CCD (Charge Coupled Device). The imagepickup device converts, into an analog signal, an image of a subjectformed through the optical lens on an image pickup plane of the imagepickup device, converts the analog signal to a digital signal, andoutputs it to the main control part 108. The display part 117 includes aliquid crystal display or the like on which images or characters aredisplayed based on display signals output from the main control part108. The touch panel 118 is incorporated on the surface of the liquidcrystal display included in the display part 117 to output, to the maincontrol part 108, a signal corresponding to a user's operation. Theauxiliary operating part 115 includes a push switch and the like usedfor display switching.

A first embodiment will next be described using FIGS. 2 to 4.

As shown in FIG. 2, the compass sensor unit according to the embodimentincludes measurement data storage determining means 201, measurementdata storing means 202, offset calculating means 203, offset validityjudging means 204, offset storing means 205, offset setting means 206,azimuth measuring means 207, and a compass sensor chip 300. The compasssensor chip 300 further includes a magnetic sensor part 301, a switchingmeans 302, an amplifier 303, an adder 304, a D/A converter 305, anoffset memory part 306, and an A/D converter 307.

Upon calibration, the measurement data storage determining means 201performs processing related to data storage such as to determine whetherto store measurement data, indicated by a digital signal correspondingto the output of a magnetic sensor, into the measurement data storingmeans 202. In this specification, the calibration means the steps ofmeasuring a magnetic field which may be mixture of a net geomagneticfield and other extraneous magnetic field causing a varying offset,computing an offset value of the varying offset based on the measurementdata of the magnetic field, and updating previous offset value based onnew offset value by recurrently sampling the measurement data andcomputing the offset value. The measurement data storing means 202captures data from the measurement data storage determining means 201 tostore the data by a predetermined storage method (the details will bedescribed later).

The offset calculating means 203 calculates offset based on themeasurement data acquired during the calibration (the details will bedescribed later). The offset validity judging means 204 judges thevalidity of the offset calculated by the offset calculating means 203(the details will be described later).

The offset storing means 205 updates the already stored offset value tothe offset value judged to be valid by the offset validity judging means204. The offset setting means 206 sums up the offset value output intothe offset memory part 306 and the offset value output from the offsetstoring means 205 to output the total value to the offset memory part306. The azimuth measuring means 207 measures an azimuth direction fromthe measurement data input from the A/D converter 307 to be describedlater.

It is conceivable in general that the offset of a magnetic sensorincludes offset unique to the magnetic sensor, offset influenced byperipheral circuits, and offset caused by the turbulence of the magneticfield under the influence of the other parts. Among them, the offsetunique to the magnetic sensor and the offset influenced by theperipheral circuits take relatively constant values. Therefore, thesevalues may be measured beforehand and prestored in the offset settingmeans 206.

The magnetic sensor part 301 includes magnetic sensors (1) to (3), andsensor initialization means (1) to (3), not shown, for initializing eachmagnetic sensor after power-on. When a ferromagnetic field is applied,the direction of the magnetization of each magnetic body of the magneticsensors is changed or distorted. To avoid this, the sensorinitialization means (1) to (3) are provided to reset each of themagnetic sensors (1) to (3) to its initial state.

The switching means 302 switches among the magnetic sensors (1) to (3)of the magnetic sensor part 301 to input each of magnetic field datasequentially from the magnetic sensors (1) to (3) to the amplifier 303.The adder 304 subtracts from the output of the amplifier 303, an analogsignal D/A converted by the D/A converter 305 from the offset valuecorresponding to each of the magnetic sensors (1) to (3). The A/Dconverter 307 converts the output of the adder 304 to a digital signal,and outputs it to the azimuth measuring means 207.

Next, specific processing will be described using FIG. 3.

As shown in FIG. 3, for example, when an application program or the likerequiring azimuth measurement is activated, the compass sensor unit 200is triggered to perform measurement (step 101) in response to a requestfrom the application program. The application program may include anavigation software using azimuth data. Specifically, it is consideredthat the trigger is activated at constant intervals. There are otherpossible triggering methods, such as to trigger in response to anazimuth measuring request from the application program side, and totrigger when it is conceivable that the azimuth direction could havechanged as a result of monitoring another device in the portableterminal (for example, at the time when image data input in theelectronic image pickup part 116 has slid).

The method of triggering at constant intervals performs data measurementperiodically. Therefore, this method has the advantage of short responsetime because previously measured data have only to be output wheneverthe application program makes a request to measure azimuth. The methodof triggering in response to an azimuth measuring request from theapplication program can minimize the number of measurements. Therefore,this method has the advantage of reducing wasteful power consumption.The method of triggering according to the state of another device hasthe combined advantages of both methods though it is a necessarycondition that another device in the portable terminal is operating. Anymethod may be selected as appropriate according to the features of thedevice.

When the measurement trigger is activated, magnetic field is measuredfrom data input from the magnetic sensor part 301, converted to digitalmeasurement data, and output to the measurement data storage determiningmeans 201 and the azimuth measuring means 207 (step 102). Themeasurement data storage determining means 201 performs processing fordetermining whether to store the data into the measurement data storingmeans 202 (step 103).

The measurement data storage determining means 201 refers to data storedin the measurement data storing means 202 to determine whether to storethe input data into the measurement data storing means 202 based on adetermination method to be described later. When determining that theinput data should be stored, the data is stored in the measurement datastoring means 202.

The data is determined to be stored when no data is stored in themeasurement data storing means 202. If any data is already stored, thedata may be determined to be stored only when it is spaced apart a givendistance or more from the last stored data. This method has theadvantage of being able to prevent the data from being locallydistributed.

Note that the distance between measurement data (Hx1, Hy1, Hz1) and(Hx2, Hy2, Hz2) is√{square root over ((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}{square root over((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}{square root over((Hx1−Hx2)²+(Hy1−Hy2)²+(Hz1−Hz2)²)}.

Namely, each of the measurement data is represented by a set ofcoordinate components corresponding to a set of different axes x, y, zof a given coordinates space. The distance is defined between a pair ofcorresponding positions of the measurement data in the given coordinatesspace.

Alternative determination methods are also considered, such as a methodof storing all data or only when no data is stored in the measurementdata storing means 202. In another method, when any data is alreadystored, new data is stored only when it is spaced apart a given distanceor more from all of the stored data in the coordinates space. Since theformer method can collect reams of data in the shortest time and henceincrease the frequency of calibration, it has the advantage of beingable to correct offset in a short time even if an offset change occurs.

The latter method is excellent at maintaining the uniformity of data,but it requires long time to accumulate data. Based on theabove-mentioned matters, any method may be selected as appropriateaccording to the features of the device. Note that a suitable value forthe given distance is about 3.98 [A/M].

As described above, in the inventive compass sensor unit having ageomagnetic sensor, a magnetic field measuring section inputs a signalfrom the geomagnetic sensor to measure a magnetic field which may bemixture of a geomagnetic field and other magnetic field causing anoffset, thereby successively providing measurement data of the magneticfield including previous measurement data and current measurement data.Each of the measurement data is represented by a set of coordinatecomponents corresponding to a set of different axes of a givencoordinates space. A measurement data storing section has a storage anddetermines whether to store the current measurement data in the storagebased on distances between the current measurement data and a pluralityof the previous measurement data already stored in the storage. Eachdistance is defined between corresponding positions of the currentmeasurement data and each of the previous measurement data in the givencoordinates space. The measurement data storing section stores thecurrent measurement data in the storage when the current measurementdata is determined to be stored. An offset value calculating sectioncalculates an offset value of the offset based on the plurality of themeasurement data stored in the storage including the current measurementdata and the previous measurement data. An offset setting sectionupdates an old offset value which has been already calculated, based ona new offset value which is newly calculated. A computing sectionremoves the offset value updated by the offset setting section from themeasurement data which is provided after the old offset value has beenupdated, to compute corrected measurement data. An azimuth measuringsection computes azimuth data according to the corrected measurementdata.

The measurement data storing means 202 captures the data from themeasurement data storage determining means 201, stores it based on astorage method to be described later (step 104), and inquires of offsetcalculation triggering means, not shown, as to whether the data shouldbe output to the offset calculating means 203. The offset calculationtriggering means replies as to whether the data should be output to theoffset calculating means 203 based on a triggering method to bedescribed later. When receiving an instruction to output data to theoffset calculating means 203, the measurement data storing means 202outputs the stored data to the offset calculating means 203.

A data storage method is considered, which accumulates data in order ofcapture, and upon completion of offset calculation processing inresponse to a trigger from the offset calculation triggering means,which deletes all the data and starts accumulation of data over again.This method has the advantage of low processing load.

Other data storage methods are also considered, such as a method, whichaccumulates data in order of capture, and when a given amount of dataare stored, which deletes the oldest data while storing new data so thatthe given amount of data will be always held, and a method, whichaccumulates data in order of capture, and upon completion of offsetcalculation processing in response to a trigger from the offsetcalculation triggering means, which deletes part of data in order ofstorage to start accumulation of data.

The former method accumulates data in order of capture, and when a givenamount of data are stored, deletes the oldest data while storing newdata so that the given amount of data will be always held. Since theformer method can increase the frequency of calibration, it has theadvantage of being able to correct offset in the shortest time. Thelatter method accumulates data in order of capture, and upon completionof offset calculation processing in response to a trigger from theoffset calculation triggering means, deletes part of data in order ofstorage to start accumulation of data. The latter method can alsocorrect offset in a short time, but it requires high calculation loadfor calibration. However, even with such a disadvantage, the lattermethod can reduce the frequency of offset calculation and hence the loadof calculation processing, compared with the former method.

As described above, in the inventive compass sensor unit having ageomagnetic sensor, a magnetic field measuring section inputs a signalfrom the geomagnetic sensor to measure a magnetic field which may bemixture of a geomagnetic field and other magnetic field causing anoffset, thereby successively providing measurement data of the magneticfield including old and new measurement data. A measurement data storingsection has a storage and stores the measurement data successivelymeasured from the input signal of the geomagnetic sensor in the storage.The measurement data storing section erases the oldest one of the storedmeasurement data from the storage when a number of the storedmeasurement data reaches a predetermined number while storing new one ofthe measurement data in the storage to thereby keep contents of thestorage fresh. An offset calculating section calculates an offset valueof the offset based on the measurement data stored in the storage.

A still another data storage method may be adopted, which accumulatesdata in order of value, and when a given amount of data are stored,which replaces one of the stored data by the newest data to be stored.The replaced data has a direction closest to the newest data. In thiscase, when the magnitude of an offset change is small, it can keep thedata density uniformly, compared with the above-mentioned methods, whilewhen the magnitude of the offset change is larger than the radius of acompass sphere, it may keep unnecessary data for ever. Therefore, thechoice of which method to select may be made as appropriate according tothe features of the device. By the way, the compass sphere is defined inthe coordinates space allocated to the magnetic sensor. The compasssphere has a center corresponding to an offset point in the coordinatespace, and a radius corresponding to a magnitude of the geomagneticfield.

As described above, in the inventive compass sensor unit having ageomagnetic sensor, a magnetic field measuring section inputs a signalfrom the geomagnetic sensor to measure a magnetic field which may bemixture of a geomagnetic field and other magnetic field causing anoffset, thereby successively providing measurement data of the magneticfield. Each measurement data is represented by a vector having adirection and a magnitude. A measurement data storing section has astorage and stores the measurement data successively measured from theinput signal of the geomagnetic sensor in the storage. The measurementdata storing section is operable when a number of the measurement datastored in the storage reaches a predetermined number and when newmeasurement data is provided, for detecting one of the storedmeasurement data having a direction closest to the direction of the newmeasurement data, and replacing the detected measurement data by the newmeasurement data to thereby keep balance of contents of the storage. Anoffset calculating section calculates an offset value of the offsetbased on the measurement data stored in the storage.

On the other hand, in order to trigger offset calculation, there is amethod for activating a trigger when a given amount of data areaccumulated. In this case, since the number of data pieces is alwaysconstant, the accuracy of calculation based on the number of data piecesis reliable. Therefore, this method has the advantage of making it easyto judge the validity of data. Other triggering methods may also beadopted, such as a method of activating a trigger when the given amountof data are stored after a certain period of time has elapsed from thelast computation of the offset value, and a method of triggering atconstant intervals as long as the number of pieces of data is four ormore.

The former method activates a trigger when a given amount of data areaccumulated, or activates a trigger when the given amount of data arestored after a certain period of time has elapsed from the lastcomputation of the offset value. Since the former method can completecalibration in a short time, it has the advantage of being able tocorrect an offset change in a shorter time. On the other hand, thelatter method triggers at constant intervals as long as the number ofpieces of data is four or more. The latter method has the advantage ofavoiding such a situation that calibration will not start for a longtime. Therefore, based on the above-mentioned matters, any method may beselected as appropriate according to the features of the device.

As described above, in the compass sensor unit having a geomagneticsensor, a magnetic field measuring section inputs a signal from thegeomagnetic sensor to measure a magnetic field which may be mixture of ageomagnetic field and other magnetic field causing a varying offset,thereby successively providing measurement data of the magnetic field. Ameasurement data storing section has a storage and stores themeasurement data successively measured from the input signal of thegeomagnetic sensor in the storage. An offset calculating sectionperiodically calculates an offset value representative of the varyingoffset at a given time interval based on a plurality of the measurementdata stored in the storage, such that a new offset value of the varyingoffset is calculated at the given time interval after a previous offsetvalue of the varying offset has been calculated.

Alternatively, a measurement data storing section has a storage andstores the measurement data successively measured from the input signalof the geomagnetic sensor in the storage. An offset calculating sectioncommences a current offset calculation when a predetermined time haspassed from a previous offset calculation and when a number of themeasurement data stored in the storage reaches a predetermined numberfor calculating a new offset value representative of the varying offset.

Then, when the measurement data is supplied from the measurement datastoring means 202 to the offset calculating means 203, offset iscalculated based on these pieces of measurement data (step 105).

The following describes an offset calculation algorithm.

If the measurement data is expressed by (x_(i), y_(i), z_(i)) where I=1,. . . , N, the offset is (X0, Y0, Z0), and the radius of the compasssphere is R, the following equation is given:(x _(i) −X0)²+(y _(i) −Y0)²+(Z _(i) −Z0)² =R ².

In this case, the least square error ε is defined as follows:

$\begin{matrix}{ɛ = {\sum\left\{ {\left( {x_{i} - {X\; 0}} \right)^{2} + \left( {y_{i} - {Y\; 0}} \right)^{2} + \left( {z_{i} - {Z\; 0}} \right)^{2} - R^{2}} \right\}^{2}}} \\{= {\sum\left\{ {\left( {x_{i}^{2} + y_{i}^{2} + z_{i}^{2}} \right) - {2x_{i}X\; 0} - {2y_{i}Y\; 0} -} \right.}} \\\left. {{2z_{i}Z\; 0} + \left( {{X\; 0^{2}} + {Y\; 0^{2}} + {Z\; 0^{2}}} \right) - R^{2}} \right\}^{2}\end{matrix}$If a=X_(i) ²+y_(i) ²+Z_(i) ²,b=−2x_(i),c=−2y_(i),d=−2z_(i), andD=(X0² +Y0² +Z0²)−R ²  (1)ε is determined by the following equation:ε=Σ(a _(i) +b _(i) X0+c _(i) Y0+d _(i) Z0+D)².

In the above definition, the variable D depends on other variables. Inorder to simplify the computation, the variable D is treated as anindependent variable. In this case, requirements for setting the leastsquare error ε to the minimum are given by differentiating ε with thevariables X0, Y0, Z0, and D as shown in the following equations:

$\left\{ \begin{matrix}{\frac{\partial ɛ}{{\partial X}\; 0} = {{2{\sum{\left( {a_{i} + {b_{i}X\; 0} + {c_{i}Y\; 0} + {d_{i}Z\; 0} + D} \right)b_{i}}}} = 0}} \\{\frac{\partial ɛ}{{\partial Y}\; 0} = {{2{\sum{\left( {a_{i} + {b_{i}X\; 0} + {c_{i}Y\; 0} + {d_{i}Z\; 0} + D} \right)c_{i}}}} = 0}} \\{\frac{\partial ɛ}{{\partial Z}\; 0} = {{2{\sum{\left( {a_{i} + {b_{i}X\; 0} + {c_{i}Y\; 0} + {d_{i}Z\; 0} + D} \right)d_{i}}}} = 0}} \\{\frac{\partial ɛ}{\partial D} = {{2{\sum\left( {a_{i} + {b_{i}X\; 0} + {c_{i}Y\; 0} + {d_{i}Z\; 0} + D} \right)}} = 0}}\end{matrix}\quad \right.$

As a result, the following is given:

${\begin{bmatrix}\lbrack{bb}\rbrack & \lbrack{bc}\rbrack & \lbrack{bd}\rbrack & \lbrack b\rbrack \\\lbrack{bc}\rbrack & \lbrack{cc}\rbrack & \left\lbrack {c\; d} \right\rbrack & \lbrack c\rbrack \\\lbrack{bd}\rbrack & \left\lbrack {c\; d} \right\rbrack & \lbrack{dd}\rbrack & \lbrack d\rbrack \\\lbrack b\rbrack & \lbrack c\rbrack & \lbrack d\rbrack & N\end{bmatrix}\begin{bmatrix}{X\; 0} \\{Y\; 0} \\{Z\; 0} \\D\end{bmatrix}} = \begin{bmatrix}{- \lbrack{ab}\rbrack} \\{- \left\lbrack {a\; c} \right\rbrack} \\{- \lbrack{ad}\rbrack} \\{- \lbrack a\rbrack}\end{bmatrix}$${{{where}\lbrack m\rbrack} = {\sum\limits_{i = 1}^{N}m_{i}}},\mspace{14mu}{\lbrack{mn}\rbrack = {\sum\limits_{i = 1}^{N}{m_{i}n_{i}}}}$By solving the above-mentioned simultaneous equations, there areobtained X0, Y0, Z0, D, which take the least square error as the minimumvalue. Further, R is determined from (1).

After the offset value is calculated, the offset validity judging means204 judges the validity of the offset value (step 106). Specifically,the following values are determined from the calculated offset, theradius of the compass circle (sphere), and measurement data stored inthe measurement data storing means 202:

$\sigma = {\frac{1}{R}\sqrt{\frac{\begin{matrix}{{N{\sum\limits_{i = 1}^{N}\left\{ {\left( {x_{i} - {X\; 0}} \right)^{2} + \left( {y_{i} - {Y\; 0}} \right)^{2} + \left( {z_{i} - {Z\; 0}} \right)^{2}} \right\}}} -} \\\left( {\sum\limits_{i = 1}^{N}\sqrt{\left( {x_{i} - {X\; 0}} \right)^{2} + \left( {y_{i} - {Y\; 0}} \right)^{2} + \left( {z_{i} - {Z\; 0}} \right)^{2}}} \right)^{2}\end{matrix}}{N^{2}}}}$$w_{x} = \frac{{{Max}\left( x_{i} \right)} - {{Min}\left( x_{i} \right)}}{R}$$w_{y} = \frac{{{Max}\left( y_{i} \right)} - {{Min}\left( y_{i} \right)}}{R}$$w_{z} = \frac{{{Max}\left( z_{i} \right)} - {{Min}\left( z_{i} \right)}}{R}$where Max(x_(i)) represents the maximum value of measurement data x₁, .. . , x_(N), and Min(x_(i)) represents the minimum value of measurementdata x₁, . . . , X_(N). Further, σ is a standard deviation. The abovevalues are checked as to whether each of the above values meets thefollowing criteria, respectively, and only when it meets each criterion,each estimated offset is judged to be valid:σ<Fw_(x)>GW_(y)>Gw_(z)>Gwhere F is preferably about 0.1, and G is about 1.

Then, when the offset is judged to be valid, the offset value stored instorage means, not shown, in the azimuth measuring means 207 is updated(step 107). The azimuth measuring means 207 operates based on the newlyupdated offset value in the storing means for removing the offset fromthe input measurement data, and calculates an azimuth direction by anyof the following methods (step 108).

1) For example, assuming that the portable terminal is on the horizontalplane, the azimuth direction is determined based on the following:

if Abs(Hx)<Abs(Hy) and Hy>0, then direction(deg)=−arctan(Hx/Hy)*180/π,

if Abs(Hx)<Abs(Hy) and Hy<0, then direction(deg)=180−arctan(Hx/Hy)*180/π,

if Abs(Hx)>Abs(Hy) and Hx>0, then direction(deg)=90+arctan(Hx/Hy)*180/π,

if Abs(Hx)>Abs(Hy) and Hx<0, thendirection(deg)=270+arctan(Hx/Hy)*180/π.

2) Assuming that the portable terminal is tilted at an angle a (rad),the azimuth direction is determined based on the following:

when Hy′=Hycos(a)−Hz′ sin(a),

if Abs(Hx)<Abs(Hy′) and Hy>0, then direction(deg)=−arctan(Hx/Hy′)*180/π,

if Abs(Hx)<Abs(Hy′) and Hy<0, thendirection(deg)=180−arctan(Hx/Hy′)*180/π,

if Abs(Hx)>Abs(Hy′) and Hx>0, thendirection(deg)=90+arctan(Hx/Hy′)*180/π,

if Abs(Hx)>Abs(Hyπ) and Hx<0, thendirection(deg)=270+arctan(Hx/Hy′)*180/π.

In the above equations, Hx, Hy, and Hz are the outputs of the magneticsensors, respectively, the azimuth direction points along the y axis,and the magnetic north is zero degree.

Since it is relatively easy for the user to keep the portable terminalin a horizontal position, the method 1) has the advantage of being easyto obtain azimuth accurately. On the other hand, since the method 2)determines the azimuth direction in such a condition that the portableterminal is tilted in a range of angles at which the user usually holdsit, a roughly correct azimuth direction can be determined. However, itmay be difficult to head the portable terminal in a steady direction, sothat accuracy cannot be expected so much.

The azimuth data thus obtained is output, for example, to the displaypart 117 or the like, and displayed on it (step 109).

FIG. 4 shows a modification example of the embodiment, in which anintegrator 309 is provided to the output of the adder 304. Theintegrator 309 is provided to average minute variations of measurementdata in calculation of analog values, so that the accuracy ofmeasurements can be improved. This modification structure is applicableto other embodiments to be described later.

A second embodiment will next be described using FIGS. 5 to 7.

As shown in FIG. 5, a compass sensor unit according to the secondembodiment includes an overflow/underflow detection part 308 formonitoring the output of the amplifier 303 in the first embodiment.

The overflow/underflow detection part 308 detects whether the output ofthe amplifier 303 falls within an input range of the next stage A/Dconverter 307. When overflow or underflow occurs, a value based ondetection results of the overflow/underflow detection part 308 is inputinto offset setting means 206 so that the output of the amplifier 303will fall within the input range of the next stage A/D converter 307.The offset setting means 206 operates when the offset storing means 205has previously stored offset value for summing up the value inputtedfrom the overflow/underflow detection part 308 and the value previouslystored in the offset storing means 205 with each other, to thereby setan offset value to be stored in the offset memory part 306.

Next, specific processing will be described using FIG. 6.

As shown in FIG. 6, for example, when an application program or the likerequiring azimuth measurement is activated, the compass sensor unit 200is triggered to perform measurement in the same manner as in the firstembodiment (step 201). When the measurement trigger is activated,magnetic data is first measured from data input from the magnetic sensorpart 301, and then the measured magnetic data is sent to the amplifier303 (step 202).

After that, the overflow/underflow detection part 308 detects whetherthe output of the amplifier 303 falls within the input range of the nextstage A/D converter 307. When overflow or underflow does not occur, theprocedure goes to the next step, while when overflow or underflowoccurs, a certain value based on the detection results of theoverflow/underflow detection part 308 is input into the offset settingmeans 206 so that the output of the amplifier 303 will fall within theinput range of the next stage A/D converter 307 (step 204) before theprocedure goes to the next step (step 203). Then, magnetic field isremeasured from data input from the magnetic sensor part, converted todigital measurement data, and output to the measurement data storagedetermining means 201 and the azimuth measuring means 207 (step 205).

The measurement data storage determining means 201 performs processingfor determining whether to store the data into the measurement datastoring means 202 (step 206). When the measurement data is determined tobe stored, it is stored in the measurement data storing means 202 (step207), while when the measurement data is determined to be not stored,the procedure returns to step 201.

The measurement data storing means 202 captures the data from themeasurement data storage determining means 201, stores it based on astorage method described above (step 207), and inquires of offsetcalculation triggering means, not shown, as to whether the data shouldbe output to the offset calculating means 203. The offset calculationtriggering means replies as to whether the data should be output to theoffset calculating means 203 based on the above-mentioned triggeringmethod. When receiving an instruction to output data to the offsetcalculating means 203, the stored data is output to the offsetcalculating means 203.

Upon receiving the input of the measurement data from the measurementdata storing means 202, the offset calculating means 203 calculatesoffset according to the above-mentioned offset calculation algorithm(step 208). After the offset value is calculated, the offset validityjudging means 204 judges the validity of the offset value (step 209).When the offset is judged to be valid, the offset value stored instorage means, not shown, in the azimuth measuring means 207 is updated(step 210).

On the other hand, the azimuth measuring means 207 operates based on anewly updated offset value in the storing means for removing the offsetfrom the input measurement data, and calculates an azimuth direction(step 211). The azimuth data thus obtained is output, for example, tothe display part 117 of the portable terminal, and displayed on it (step212).

FIG. 7 is a modification example of the embodiment, in which the offsetstoring means 205 is eliminated, so that the offset setting means 206makes a correction to compensate for overflow or underflow, and theoffset of the measurement data that is within the input range of the A/Dconverter 307 is corrected based on the offset value calculated by theoffset calculating means 203. In such a structure, an overflow/underflowcorrection is made primarily through hardware processing, while acorrection after elimination of overflow or underflow is made primarilythrough software processing. This makes it possible to reduce not onlythe circuit load but also the software processing load.

According to the embodiment, the overflow/underflow detection partdetects overflow or underflow. When the overflow or underflow isdetected, the adder 304 corrects the measurement data based on the valueof the overflow/underflow detection. This makes it possible to reducetime required for A/D conversion by the A/D converter 307, and hence tocalculate an accurate azimuth direction in a short time. Further, ifconsideration is given to the circuit structure, the circuit load andthe software processing load can be reduced as well.

A third embodiment will next be described using FIGS. 8 and 9.

As shown in FIG. 8, a compass sensor unit according to the thirdembodiment includes offset magnitude determining means 208 instead ofthe offset setting means 206 and the offset storing means 205 providedin the first embodiment.

The offset magnitude determining means 208 determines whether the offsetvalue judged to be valid is lager than a given value. When the offsetvalue is larger than the given value, it is output to the offset memorypart 306, while when the offset value is smaller than the given value,it is output to the azimuth measuring means 207.

Next, specific processing will be described using FIG. 9.

As shown in FIG. 9, for example, when an application program or the likerequiring azimuth measurement is activated, the compass sensor unit 200is triggered to perform measurement (step 301) in the same manner as inthe first embodiment. When the measurement trigger is activated,magnetic field is measured from data input from the magnetic sensor part301, converted to digital measurement data, and output to themeasurement data storage determining means 201 and the azimuth measuringmeans 207 (step 302).

The measurement data storage determining means 201 performs processingfor determining whether to store the data in the measurement datastoring means 202 (step 303). When the measurement data is determined tobe stored, it is stored in the measurement data storing means 202 (step304), while when it is determined to be not stored, the procedurereturns to step 301.

The measurement data storing means 202 captures the data from themeasurement data storage determining means 201, stores it based on astorage method to be described later (step 304), and inquires of offsetcalculation triggering means, not shown, as to whether the data shouldbe output to the offset calculating means 203. The offset calculationtriggering means replies as to whether the data should be output to theoffset calculating means 203 based on the above-mentioned triggeringmethod. When receiving an instruction to output data to the offsetcalculating means 203, the measurement data storing means 202 outputsthe stored data to the offset calculating means 203.

Upon receiving the input of the measurement data from the measurementdata storing means 202, the offset calculating means 203 calculatesoffset according to the above-mentioned offset calculation algorithm(step 305). After the offset value is calculated, the offset validityjudging means 204 judges the validity of the offset value (step 306).

Then, it is determined whether the offset value judged to be valid islarger than the predetermined value (step 307). When the offset value islarger than the predetermined value, it is output to the offset memorypart 306 (step 308), while when the offset value is smaller than thepredetermined value, it is output to the azimuth measuring means 207.Then, the offset value stored in storage means, not shown, in theazimuth measuring means 207 is updated (step 309).

On the other hand, the azimuth measuring means 207 removes the offsetfrom the input measurement data after step 302, and calculates anazimuth direction based on the data (step 310). The azimuth data thusobtained is output, for example, to the display part 117 of the portableterminal, and displayed on it (step 311).

According to the embodiment, the offset magnitude determining meansdetects the magnitude of the offset after the offset validity judgingmeans has judged valid. When the detected magnitude is greater than thepredetermined reference value, the offset value is outputted to theoffset memory part 306. The outputted offset value and the previousoffset value in the offset memory part 306 are summed with each other.The summed offset value is converted into an analog signal by the D/Aconverter 305. The adder 304 subtracts the converted analog signal fromthe measurement signal. This makes it possible to reduce time requiredfor A/D conversion by the A/D converter 307, and hence to calculate anaccurate azimuth direction in a short time. Further, if consideration isgiven to the circuit structure, the circuit load and the softwareprocessing load can be reduced as well.

A fourth embodiment will next be described using FIGS. 10 to 12.

As shown in FIG. 10, a compass sensor chip 300 according to the fourthembodiment further includes, in addition to the components in the firstembodiment, a temperature sensor 310, a tilt sensor 311, and switchingmeans 312 for switching among the output of the amplifier 303, theoutput of the temperature sensor 310, and the output of the tilt sensor311. In addition, as shown in FIG. 11, the compass sensor unit 200further includes temperature correction value calculating means 209 andtilt correction value calculating means 210 for calculating atemperature correction value and a tilt correction value, respectively,when the input data is fed from the magnetic sensor part through the A/Dconverter 307 of the compass sensor chip 300.

The temperature sensor 310 monitors the temperature of the compasssensor chip 300, and outputs the data to the temperature correctionvalue calculating means 209 of the compass sensor unit 200 through theA/D converter 307 of the compass sensor chip 300. The temperaturecorrection value calculating means 209 prestores functions oftemperatures and correction values, so that it outputs a correctionvalue corresponding to the input temperature data to the azimuthmeasuring means 207. Specifically, if temperature upon calibration isTO, estimated offset is OF, a temperature coefficient is A (measured andstored in the ROM 109 at the time of shipping inspection), temperatureupon measurement is T, and a value measured by each magnetic sensor isSO, magnetic data S1 after temperature-corrected offset is removed isgiven by:S1=S0−{OF+A(T−TO)}.In the above equation, A(T−TO) denotes the correction value for theinputted temperature data.

The tilt sensor 311 monitors the inclination of the compass sensor chip300, and outputs the data to the tilt correction value calculating means210 of the compass sensor unit 200 through the A/D converter 307 of thecompass sensor chip 300. The tilt correction value calculating means 210calculates elevation β and skew angle γ by a method to be describedbelow, and outputs them to the azimuth measuring means 207.

The details of the tilt correction will be described by taking as anexample the case of the portable terminal 1.

As shown in FIG. 13( a), the coordinate system of the portable terminal1 is first defined. In other words, the azimuth of the antenna 101 ofthe portable terminal 1 is represented as α, the elevation as β, and theskew angle (rotating angle about the antenna axis) as γ. These symbolsindicate positive in the direction of arrow. Further, a unit vector inthe antenna direction is represented as Vy, a unit vector in a directionperpendicular to the surface (e.g., part 99 in FIG. 13) of a terminalunit-2 (the side on which the antenna 101 and the compass sensor ship300 are arranged) is represented as Vz, and a unit vector orthogonal toboth of Vy and Vz is represented as Vx. Note that the direction of arrowof each unit vector is positive. Then, as shown in FIG. 13( b), thecoordinate system of the ground is represented by X, Y, and Z, with theY axis heading north.

Here, gravity in the ground coordinate system is defined as G=(0, 0,Gz). Further, gravity in the portable-terminal coordinate system isdefined as g=(gx, gy, gz). It is assumed here that the gravity in theportable-terminal coordinate system can be detected by the tilt sensor.It is needless to say that the gravity in the ground coordinate systemis known.

Thus, the gravity g in the portable-terminal coordinate system and thegravity G in the ground coordinate system are represented by thefollowing equation:(Gx, Gy, Gz) BC=(gx, gy, gz),where

$B = \begin{bmatrix}1 & 0 & 0 \\0 & {\cos\;\beta} & {\sin\;\beta} \\0 & {{- \sin}\;\beta} & {\cos\;\beta}\end{bmatrix}$ $C = \begin{bmatrix}{\cos\;\gamma} & 0 & {{- \sin}\;\gamma} \\0 & 1 & 0 \\{\sin\;\gamma} & 0 & {\cos\;\gamma}\end{bmatrix}$

From these relations, BC is represented by the following equation:

${BC} = \begin{bmatrix}{\cos\;\gamma} & 0 & {{- \sin}\;\gamma} \\{\sin\;\beta\;\sin\;\gamma} & {\cos\;\beta} & {\sin\;\beta\;\cos\;\gamma} \\{\cos\;\beta\;\sin\;\gamma} & {{- \sin}\;\beta} & {\cos\;\beta\;\cos\;\gamma}\end{bmatrix}$

Therefore, the gravity g in the portable-terminal coordinate system isrepresented by the following equation:

$\begin{matrix}{\left( {{gx},{gy},{gz}} \right) = {\left( {0,0,{Gz}} \right)\begin{bmatrix}{\cos\;\gamma} & 0 & {{- \sin}\;\gamma} \\{\sin\;\beta\;\sin\;\gamma} & {\cos\;\beta} & {\sin\;\beta\;\cos\;\gamma} \\{\cos\;\beta\;\sin\;\gamma} & {{- \sin}\;\beta} & {\cos\;\beta\;\cos\;\gamma}\end{bmatrix}}} \\{= {{Gz}\left( {{\cos\;\beta\;\sin\;\gamma},{{- \sin}\;\beta},{\cos\;\beta\;\cos\;\gamma}} \right)}}\end{matrix}$

From this equation, the elevation β and the skew angle γ are determinedas follows:

$\beta = {{arc}\;{\tan\left( {- \frac{gy}{\sqrt{{gx}^{2} + {gz}^{2}}}} \right)}}$$\gamma = \left\{ \begin{matrix}{{arc}\;{\tan\left( \frac{gx}{gz} \right)}} & {{gz} \geq 0} \\{{180\left( \deg \right)} + {{arc}\;{\tan\left( \frac{gx}{gz} \right)}}} & {{gz} < 0}\end{matrix} \right.$

Thus the elevation β and the skew angle γ can be determined.

When receiving the elevation β and the skew angle γ, the azimuthmeasuring means 207 determines the azimuth α and geomagnetic elevation θaccording to an algorithm to be described below.

If geomagnetism in the portable-terminal coordinate system is h=(hx, hy,hz) and geomagnetism in the ground coordinate system is H=(0, Hy, Hz),the following equation is given:(0, Hy, Hz) ABC=(hx, hy, hz),where

$A = \begin{bmatrix}{\cos\;\alpha} & {{- \sin}\;\alpha} & 0 \\{\sin\;\alpha} & {\cos\;\alpha} & 0 \\0 & 0 & 1\end{bmatrix}$ $B = \begin{bmatrix}1 & 0 & 0 \\0 & {\cos\;\beta} & {\sin\;\beta} \\0 & {{- \sin}\;\beta} & {\cos\;\beta}\end{bmatrix}$ $C = \begin{bmatrix}{\cos\;\gamma} & 0 & {{- \sin}\;\gamma} \\0 & 1 & 0 \\{\sin\;\gamma} & 0 & {\cos\;\gamma}\end{bmatrix}$From these relations, the following equation is derived:(0,Hy,Hz)A=(hx,hy,hz)C ⁻¹ B ⁻¹≡(hx′,hy′,hz′)and hence

(hx′, hy′, hz′)=(Hysinα, Hycosα, Hz). Therefore, (hx′, hy′, hz′) can bedefined based on the input elevation β, the input skew angle γ, and themeasured geomagnetism h in the portable-terminal coordinate system.Here, since the geomagnetism H in the ground coordinate system is known,the azimuth α is determined. The geomagnetic elevation θ is alsodetermined by the following equation:

$\theta = {{arc}\;\tan\frac{{hz}^{\prime}}{\sqrt{{hx}^{\prime 2} + {hy}^{\prime 2}}}}$

Thus, according to the embodiment, not only the effect of offset of eachmagnetic sensor caused by changes in magnetic fields of peripheral partsand the like but also the effect of offset caused by changes intemperature and inclination can be removed effectively.

FIG. 12 is a modification example of the embodiment, in which correctiondata judging means 211 is provided to the outputs of the temperaturecorrection value calculating means 209 and the tilt correction valuecalculating means 210. The correction data judging means 211 havingstorage means, not shown, compares output data from each of thetemperature correction value calculating means 209 and the tiltcorrection value calculating means 210 with the last stored output data.Then, when the output data contains a given degree or more change, thedata is output to the azimuth measuring means 207.

Thus, according to the embodiment, the correction data judging means 211judges the data from the temperature correction value calculating means209 and the tilt correction value calculating means 210 to determinewhether to output the data to the azimuth measuring means 207. This canreduce the processing load on the azimuth measuring means 207.

The above describes the embodiments of the present invention withreference to the accompanying drawings, but specific structures are notlimited to those of the embodiments, and any other structures can beincluded without departing from the scope of the invention. For example,the block for calculating the outputs of the magnetic sensors isprovided in the compass sensor unit in the embodiments of the presentinvention, but it is not limited to such an arrangement, and thecalculation part may be provided in the main control part of theterminal unit.

The present invention has the advantage of being able to performcalibration without putting an excess load on the user so as to outputan accurate direction.

It also has the advantage of providing a compass sensor unit capable ofoutputting an accurate direction while reducing the loads on the D/Aconverter and memory.

1. An azimuth data computing method comprising the steps of: inputting asignal from a geomagnetic sensor to measure a magnetic field which maybe mixture of a geomagnetic field and other magnetic field causing avarying offset, thereby successively providing measurement data of themagnetic field; storing the measurement data successively measured fromthe input signal of the geomagnetic sensor in a storage; periodicallycalculating an offset value representative of the varying offset at agiven time interval based on a plurality of the measurement data storedin the storage, such that a new offset value of the varying offset iscalculated at the given time interval after a previous offset value ofthe varying offset has been calculated; updating the previous offsetvalue based on the new offset value; and correcting the measurement datawhich is provided after the previous offset value has been updated,according to the updated offset value and computing azimuth dataaccording to the corrected measurement data.
 2. An azimuth datacomputing method comprising the steps of: inputting a signal from ageomagnetic sensor to measure a magnetic field which may be mixture of ageomagnetic field and other magnetic field causing a varying offset,thereby successively providing measurement data of the magnetic field;storing the measurement data successively measured from the input signalof the geomagnetic sensor in a storage; commencing a current offsetcalculation when a predetermined time has passed from a previous offsetcalculation and when a number of the measurement data stored in thestorage reaches a predetermined number for calculating a new offsetvalue representative of the varying offset; updating a previous offsetvalue which has been calculated in the previous offset calculation,based on the new offset value which is calculated in the current offsetcalculation; and correcting the measurement data which is provided afterthe previous offset value has been updated, according to the updatedoffset value and computing azimuth data according to the correctedmeasurement data.
 3. A compass sensor unit having a geomagnetic sensorcomprising: a magnetic field measuring section that inputs a signal fromthe geomagnetic sensor to measure a magnetic field which may be mixtureof a geomagnetic field and other magnetic field causing a varyingoffset, thereby successively providing measurement data of the magneticfield; a measurement data storing section that has a storage and thatstores the measurement data successively measured from the input signalof the geomagnetic sensor in the storage; an offset calculating sectionthat periodically calculates an offset value representative of thevarying offset at a given time interval based on a plurality of themeasurement data stored in the storage, such that a new offset value ofthe varying offset is calculated at the given time interval after aprevious offset value of the varying offset has been calculated; anoffset setting section that updates the previous offset value based onthe new offset value; a computing section that removes the offset valueupdated by the offset setting section from the measurement data which isprovided after the previous offset value has been updated, to computecorrected measurement data; and an azimuth measuring section thatcomputes azimuth data according to the corrected measurement data.
 4. Acompass sensor unit having a geomagnetic sensor comprising: a magneticfield measuring section that inputs a signal from the geomagnetic sensorto measure a magnetic field which may be mixture of a geomagnetic fieldand other magnetic field causing a varying offset, thereby successivelyproviding measurement data of the magnetic field; a measurement datastoring section that has a storage and that stores the measurement datasuccessively measured from the input signal of the geomagnetic sensor inthe storage; an offset calculating section that commences a currentoffset calculation when a predetermined time has passed from a previousoffset calculation and when a number of the measurement data stored inthe storage reaches a predetermined number for calculating a new offsetvalue representative of the varying offset; an offset setting sectionthat updates a previous offset value which has been calculated in theprevious offset calculation, based on the new offset value which iscalculated in the current offset calculation; a computing section thatremoves the offset value updated by the offset setting section from themeasurement data which is provided after the previous offset value hasbeen updated, to compute corrected measurement data; and an azimuthmeasuring section that computes azimuth data according to the correctedmeasurement data.
 5. A recording medium for use in an electronicapparatus having a processor, a storage and a geomagnetic sensor, therecording medium containing program instructions executable by theprocessor for causing the electronic apparatus to perform a method ofcomputing azimuth data comprising the steps of: inputting a signal fromthe geomagnetic sensor to measure a magnetic field which may be mixtureof a geomagnetic field and other magnetic field causing a varyingoffset, thereby successively providing measurement data of the magneticfield; storing the measurement data successively measured from the inputsignal of the geomagnetic sensor in the storage; periodicallycalculating an offset value representative of the varying offset at agiven time interval based on a plurality of the measurement data storedin the storage, such that a new offset value of the varying offset iscalculated at the given time interval after a previous offset value ofthe varying offset has been calculated; updating the previous offsetvalue based on the new offset value; and correcting the measurement datawhich is provided after the previous offset value has been updated,according to the updated offset value and computing the azimuth dataaccording to the corrected measurement data.
 6. A recording medium foruse in an electronic apparatus having a processor, a storage and ageomagnetic sensor, the recording medium containing program instructionsexecutable by the processor for causing the electronic apparatus toperform a method of computing azimuth data comprising the steps of:inputting a signal from the geomagnetic sensor to measure a magneticfield which may be mixture of a geomagnetic field and other magneticfield causing a varying offset, thereby successively providingmeasurement data of the magnetic field; storing the measurement datasuccessively measured from the input signal of the geomagnetic sensor inthe storage; commencing a current offset calculation when apredetermined time has passed from a previous offset calculation andwhen a number of the measurement data stored in the storage reaches apredetermined number for calculating a new offset value representativeof the varying offset; updating a previous offset value which has beencalculated in the previous offset calculation, based on the new offsetvalue which is calculated in the current offset calculation; andcorrecting the measurement data which is provided after the previousoffset value has been updated, according to the updated offset value andcomputing the azimuth data according to the corrected measurement data.